<?php

declare( strict_types = 1 );

namespace App\Common\Model\Base\Traits;

use App\Common as com;
use App\Common\Model\Base as nameModelBase;

trait DataUnitPublicMethod {

	/**
	 * 创建数据
	 * @param array $extraSaveData 额外附加的数据
	 * @return static
	 * @throws
	 */
	public function saveOfCreate( array $extraSaveData = [] ):static {
		return parent::saveOfCreate( $extraSaveData );
	}

	/**
	 * 创建数据
	 * @param array $extraSaveData
	 * @return int 返回数据id
	 */
	public function saveOfCreateReId( array $extraSaveData = [] ):int {
		return parent::saveOfCreateReId( $extraSaveData );
	}

	/**
	 * 更新数据
	 * @param array $extraSaveData 额外附加的数据
	 * @return int 更新影响数
	 */
	public function saveOfUpdate( array $extraSaveData = [] ):int {
		return parent::saveOfUpdate( $extraSaveData );
	}

	/**
	 * 更新或创建（不存在时创建）
	 * @param array $updateExtraSaveData 更新时使用的额外附加的数据
	 * @param array $createExtraSaveData 创建时使用的额外附加的数据
	 * @return static
	 */
	public function updateOrCreate( array $updateExtraSaveData = [], array $createExtraSaveData = [] ):static {
		return parent::updateOrCreate( $updateExtraSaveData, $createExtraSaveData );
	}

	/**
	 * 删除
	 * @return int 删除数量
	 * @throws
	 */
	public function delete():int {
		return parent::delete();
	}

}
